package network.rpc.server;

import java.io.IOException;

/**
 * 服务中心
 */
public interface ServiceCenter {

    /**
     * 服务中心启动，提供服务
     * @throws IOException 基于网络通信，可能会有IO异常
     */
    void start() throws IOException;

    /**
     * 服务中心停止
     */
    void stop();

    /**
     * 注册服务到服务中心
     *
     * @param serviceInterface 服务的接口
     * @param impl             服务接口的实现类
     */
    void register(Class<?> serviceInterface, Class<?> impl);

    /**
     * 获取服务中心的端口，用于客户端进行网络通信
     * @return 服务中心端口
     */
    int getPort();
}
